//! 基本使用示例

use unichar::{Unichar, Config, Style, rich, development};

fn main() {
    println!("=== Unichar 基本使用示例 ===\n");

    // 1. 创建默认实例
    let mut unichar = Unichar::new();
    println!("1. 默认配置:");
    println!("   成功: {}", unichar.get("success").unwrap_or("未找到"));
    println!("   错误: {}", unichar.get("error").unwrap_or("未找到"));
    println!("   警告: {}", unichar.get("warning").unwrap_or("未找到"));
    println!("   信息: {}", unichar.get("info").unwrap_or("未找到"));
    println!();

    // 2. 切换到图标样式
    unichar.set_config(Config::new().with_style(Style::Icon));
    println!("2. 图标样式:");
    println!("   成功: {}", unichar.get("success").unwrap_or("未找到"));
    println!("   错误: {}", unichar.get("error").unwrap_or("未找到"));
    println!("   警告: {}", unichar.get("warning").unwrap_or("未找到"));
    println!("   信息: {}", unichar.get("info").unwrap_or("未找到"));
    println!();

    // 3. 使用预设配置
    let rich_unichar = rich();
    println!("3. 富文本配置:");
    println!("   成功: {}", rich_unichar.get("success").unwrap_or("未找到"));
    println!("   错误: {}", rich_unichar.get("error").unwrap_or("未找到"));
    println!("   星星: {}", rich_unichar.get("star").unwrap_or("未找到"));
    println!("   心形: {}", rich_unichar.get("heart").unwrap_or("未找到"));
    println!();

    // 4. 使用格式化功能
    println!("4. 字符串格式化:");
    println!("   {}", unichar.format("操作结果: {success} 或 {error}"));
    println!("   {}", unichar.format("状态: {info} 用户: {user}"));
    println!();

    // 5. 批量获取字符
    println!("5. 批量获取字符:");
    let chars = ["success", "error", "warning", "info", "star"];
    let results = unichar.get_multiple(&chars);
    for (name, char) in results {
        println!("   {}: {}", name, char.unwrap_or("未找到"));
    }
    println!();

    // 6. 获取可用样式
    println!("6. 'success' 字符的可用样式:");
    let styles = unichar.get_available_styles("success");
    for style in styles {
        println!("   {:?}: {}", style, unichar.get_with_style("success", &style).unwrap_or("未找到"));
    }
    println!();

    // 7. 使用别名
    let dev_unichar = development();
    println!("7. 开发配置（包含别名）:");
    println!("   ok: {}", dev_unichar.get("ok").unwrap_or("未找到"));
    println!("   fail: {}", dev_unichar.get("fail").unwrap_or("未找到"));
    println!("   warn: {}", dev_unichar.get("warn").unwrap_or("未找到"));
    println!();

    // 8. 获取统计信息
    println!("8. 字符统计信息:");
    let stats = unichar.get_stats();
    println!("   总字符数: {}", stats.total_characters);
    println!("   别名数: {}", stats.aliases_count);
    println!("   各样式支持数量:");
    for (style, count) in stats.style_counts {
        println!("     {:?}: {}", style, count);
    }
}
